/*
 * @Date: 2024-01-31 20:36:55
 * @LastEditors: fromct 512799311@qq.com
 * @LastEditTime: 2024-01-31 21:01:15
 * @FilePath: /umi-max/src/utils/request.ts
 * @Description: desc
 */
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
import Cookies from 'js-cookie'; // 引入js-cookie库
import { history } from 'umi';

const instance = axios.create({
  baseURL: process.env.API_BASE_URL || '', // 设置你的API基础路径
});

// 在请求头中自动添加cookie（假设你已在浏览器端存储了cookie）
instance.interceptors.request.use((config: AxiosRequestConfig) => {
  if (typeof document !== 'undefined') {
    const csrftoken = Cookies.get('csrfToken'); // 假设你有一个名为'csrfToken'的cookie
    if (csrftoken) {
      config.headers['X-CSRFToken'] = csrftoken; // 将cookie注入到请求头
    }
  }

  return config;
});

// 拦截并处理响应
instance.interceptors.response.use(
  (response: AxiosResponse<any>) => {
    // 对成功的响应进行处理，例如检查认证状态、更新UI等
    if (response.data && response.data.status === 'needLogin') {
      // 若需要登录，则跳转至登录页
      history.push('/login');
    }

    return response.data;
  },
  (error) => {
    // 对错误的响应进行处理
    console.error('request error', error);
    Promise.reject(error);
  },
);

export default instance;
